import router from "@/router"
import {useBreadCrumb} from "@/store/breadCrumb"
import {usePermission} from "@/store/permission"
import NProgress from 'nprogress'

// 前置钩子(守卫)
router.beforeEach(async (to,from)=>{
    // 打开进度条
    NProgress.start()
    let permissionStore =usePermission() 
    // console.log(to);
    // console.log(from);
    // 判断本地的sessionStorage中是否有token，如果有，啥也不干
    let token = sessionStorage.getItem("my-token")
    if(!token){
        //如果没有
        // 1.如果访问的不是登录页，强行跳转到登录页
        if(to.path!=='/login'){
            return {
                path:"/login"
            }
        }
    }else{
        // 如果menulist的长度是0，那么就要发起请求
        if(permissionStore.menulist.length === 0){
            // 调用astore中的action方法发起异步请求
            await permissionStore.fetch_menulist()
            //  废弃要进入的路由，重新进入动态添加的路由
            return {
                // to: {...to}
                ...to
            }
        }
    }
}) 

//后置守卫(钩子)
router.afterEach((to,from)=>{
    // 关闭进度条
    NProgress.done()
    // console.log('afterEach-to===',to);
    let breadCrumbStore = useBreadCrumb()
    breadCrumbStore.$patch(state=>{
        state.datas = to.matched
    })
})